1. Field of the Invention
The present invention relates to an information processing apparatus connected to an output device, and a program product and a recording medium in the information processing apparatus.
2. Description of the Related Art
If a computer such as a personal computer (PC) is connected to a peripheral device such as a printer, a scanner, or a facsimile machine (FAX) via a network or in a serial manner, the computer includes a device driver for converting data created or viewed with an installed application into data that can be interpreted by the peripheral device. For example, if the peripheral device is an image forming apparatus such as a laser printer (LP) or a multifunction peripheral (MFP), the computer typically has incorporated a printer driver dedicated to the image forming apparatus. Accordingly, the data created by the application are converted into page description language (PDL) data that can be interpreted by the image forming apparatus.
FIG. 21 is a functional block diagram of a computer in an image forming system according to the conventional technology.
A computer 1000 shown in FIG. 21 is capable of displaying a user interface (UI) that is based on an OS (Operating System) such as Windows (registered trademark). The computer 1000 is connected to a first printer 2010 and a second printer 2020 via a network 3000. The computer 1000 includes an application 1100 that is general-purpose software such as document creation software and spreadsheet software, an OS 1200, one or plural printer drivers 1310, 1320, . . . for converting an internal command from the OS 1200 into data that can be interpreted by the printer 2010 or the printer 2020, i.e., into so-called page description language (PDL) data, and a communications unit 1400 for transmitting/receiving data between each of the printers 2010, 2020 via the network 3000.
The application 1100 includes an output image storage unit 1102 for storing print data to be printed out by the printer 2010 or 2020, and a setting value storage unit 1104 for storing setting values regarding print setting items such as paper sizes, stapling, or trays.
For example, in a case where the OS 1200 is Windows®, the printer driver 1310 is divided into a user interface (UI) unit 1312 for displaying a page used for specifying the print setting for the printer 2010 to be used for the printing operation, and a rendering unit 1314 for converting data of, for example, a document created by the application 1100 into print data and attaching the contents set at the UI unit 1312 to the print data. Furthermore, in the printer driver 1310, a structure called DEVMODE is specified as a data structure for the rendering unit 1314 to receive contents set at the UI unit 1312. The other printer drivers also have the same configuration.
With reference to FIG. 22, a description is given of a print setting operation performed by the computer 1000 shown in FIG. 21 for printing document data created by the application 1100 with the first printer 2010 corresponding to the first printer driver 1310. FIG. 22 illustrates a print setting operation flow of the conventional computer shown in FIG. 21.
The OS 1200 has a role of hiding, from the application 1100, which printer driver is being used. Therefore, all requests made by the application 1100 of the printer driver 1310 are given via the OS 1200.
First, in step S1001, the user makes a print request for the first printer 2010 with the use of an input device (not shown) such as a keyboard or a mouse. Specifically, if the OS is Windows®, the print request is executed as the user selects “print” from a drop-down menu of “file” when the document data are open.
Upon receiving the print request from the user, in step S1002, the application 1100 requests the OS 1200 to provide size information in order to secure a region of a certain size for saving print setting values. In step S1003, the OS 1200 requests the first printer driver 1310, which is to be used corresponding to the first printer 2010, to provide the size information. Upon receiving this request, in step S1004, the printer driver 1310 sends, to the OS 1200, information on the region size necessary for saving the print setting values. In step S1005, the OS 1200 sends, to the application 1100, information on the region size received from the printer driver 1310. Based on this information, in step S1006, the application 1100 secures the necessary region size in its setting value storage unit 1104.
Next, in step S1007, the application 1100 requests the OS 1200 to write a standard value (default value) into the secured region. In step S1008, the OS 1200 makes the same request of the printer driver 1310. In step S1009, the printer driver 1310 sends information on the standard setting value to the OS 1200. In step S1010, the OS 1200 writes the information on the standard setting value received from the printer driver 1310 in a predetermined region in the setting value storage unit 1104 of the application 1100.
Before the printing operation, in step S1011, the application 1100 requests the OS 1200 to prompt the user to change the print setting. Specifically, if the OS is Windows®, this setting change request is executed as the user selects “property” in a page displayed upon selecting “print” from a drop-down menu of “file” when the document data are open. In step S1012, the OS 1200 makes the same request of the printer driver 1310. Upon receiving this request, in step S1013, the printer driver 1310 displays a print setting page with the UI unit 1312. As the user inputs desired values in the items of print settings by following this page, in step S1014, the printer driver 1310 changes the setting values to the values input by the user. Subsequently, in step S1015, the printer driver 1310 sends the changed setting values to the OS 1200. In step S1016, the OS 1200 sends the setting values received from the printer driver 1310 to the application 1100. In step S1017, the application 1100 saves, in the setting value storage unit 1104, the setting values that have been received from the printer driver 1310 via the OS 1200. Instead, the application 1100 may save the setting values in the output image storage unit 1102 together with document data.
Subsequently, in step S1018, the application 1100 assigns the setting values received from the printer driver 1310 via the OS 1200 as setting values for the current printing operation, and instructs performing a printing operation. In step S1019, the printing instruction from the application 1100 is sent to the printer driver 1310 via the OS 1200. Upon receiving this printing instruction, in step S1020, the printer driver 1310 generates, with the rendering unit 1314, data that can be interpreted by the corresponding first printer 2010 based on the print setting values changed by the user. Finally, the data generated by the printer driver 1310 are sent by the communications unit 1400 to the first printer 2010 via the network 3000.
As described above, in the process of executing a printing operation, the computer 1000 saves the print setting values in a predetermined format such as the DEVMODE structure (step S1017). The method of saving the print setting values varies among different manufacturers and different models of printer drivers. For example, a printer driver of a certain model may assign a specific number for a paper size, while a printer driver of another model may set values for the length and width of the sheet of paper. Furthermore, depending on the application, the print setting values may be saved together with document data.
In such a case, the saved print setting values correspond to those of a printer of another model. Therefore, the sequence of processes up to step S1014, in which the print setting values are changed according to user input, is omitted. If a printing instruction is given, the printer driver simply receives from the application print setting values corresponding to the printer of another model. However, these print setting values may include information that cannot be interpreted (uninterpretable) by the printer driver.
In order to overcome such a situation where information that is uninterpretable by the printer driver is included, for example, Japanese Laid-Open Patent Application No. 2002-248831 (Patent Document 1) discloses the following image forming apparatus. Specifically, in the disclosed image forming apparatus, even if there is an invalid print setting value that is uninterpretable by the printer driver, the invalid print setting value is set as a standard value (default value) so that the printing job is not interrupted and high processing efficiency is realized.
Patent Document 1: Japanese Laid-Open Patent Application No. 2002-248831
However, the image forming apparatus disclosed in Patent Document 1 has the following problem. That is, the actual printed results may not be as expected by the user, because the information that is uninterpretable by the printer driver is corrected (changed) to a standard value in order to continue the process. Furthermore, it is extremely difficult to develop an application that can detect whether information will not be interpreted by the printer driver. Realistically, it is not possible to make the user recognize that an application saves the print setting values together with document data.